<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Make Controller Kit - Firmware API: Servo - OSC</title>
<link href="mt_doxygen.css" rel="stylesheet" type="text/css" />
<link href="../resources/mt_doxytabs.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.header {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12pt;
	color: #222222;
}
-->
</style>
</head>

<body>
<table width="800" border="0">
    <tr>
      <td colspan="3">
        <form method="get" action="http://www.google.com/search">
          <div align="right">
            <input type="text"   name="q" size="25"
              maxlength="255" value="" />
            <input type="submit" value="Search" />
            <input type="hidden" name="sitesearch" value="makingthings.com/ref/firmware/html" />
          </div>
        </form>
       </td>
    </tr>
    <tr>
      <td><div align="center"><a href="http://www.makingthings.com">
				<img src="../resources/logo_brown_medium.png" alt="MakingThings"
									width="200" height="78" border="0" align="middle" longdesc="http://www.makingthings.com" /></a></div></td>
				<td><div align="center" class="header">
      		Make Controller Kit <br />
          Firmware API
      </div></td>
      <td><div align="center"><a href="http://www.makezine.com">
					<img src="../resources/make_logo.png" alt="MAKE Zine" 
										width="164" height="73" border="0" align="middle" longdesc="http://www.makezine.com" /></a></div></td>
    </tr>
</table>
</body>
</html>
<!-- Generated by Doxygen 1.5.4 -->
<script type="text/javascript">
<!--
function changeDisplayState (e){
  var num=this.id.replace(/[^[0-9]/g,'');
  var button=this.firstChild;
  var sectionDiv=document.getElementById('dynsection'+num);
  if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
    sectionDiv.style.display='block';
    button.src='open.gif';
  }else{
    sectionDiv.style.display='none';
    button.src='closed.gif';
  }
}
function initDynSections(){
  var divs=document.getElementsByTagName('div');
  var sectionCounter=1;
  for(var i=0;i<divs.length-1;i++){
    if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
      var header=divs[i];
      var section=divs[i+1];
      var button=header.firstChild;
      if (button!='IMG'){
        divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
        button=document.createElement('img');
        divs[i].insertBefore(button,divs[i].firstChild);
      }
      header.style.cursor='pointer';
      header.onclick=changeDisplayState;
      header.id='dynheader'+sectionCounter;
      button.src='closed.gif';
      section.id='dynsection'+sectionCounter;
      section.style.display='none';
      section.style.marginLeft='14px';
      sectionCounter++;
    }
  }
}
window.onload = initDynSections;
-->
</script>
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<h1>Servo - OSC<br>
<small>
[<a class="el" href="group___o_s_c.html">OSC</a>]</small>
</h1>Control Servo motors with the Application Board via OSC.  
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
<h2><a class="anchor" name="devices">
Devices</a></h2>
There are 4 Servo controllers available on the Application Board, numbered 0 - 3.<br>
 See the servo section in the Application Board user's guide for more information on hooking up servos to the board.<h2><a class="anchor" name="properties">
Properties</a></h2>
Each servo controller has three properties:<ul>
<li>position</li><li>speed</li><li>active</li></ul>
<p>
<dl class="user" compact><dt><b>Position</b></dt><dd>The <b>position</b> property corresponds to the position of the servo motor within its range of motion. This value can be both read and written. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>Most servos like to be driven within a "safe range" which usually ends up being somewhere around 110-120 degrees range of motion, or thereabouts. Some servos don't mind being driven all the way to their 180 degree range of motion limit. With this in mind, the range of values you can send to servos connected to the Make Controller Kit is as follows:<ul>
<li>Values from 0-1023 correspond to the normal, or "safe", range of motion.</li><li>You can also send values from -512 to 1536 to drive the servo through its full range of motion. </li></ul>
</dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>Note that it is sometimes possible to damage your servo by driving it too far, so proceed with a bit of caution when using the extended range until you know your servos can handle it. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>To set the first servo to one quarter its position, send the message <div class="fragment"><pre class="fragment">/servo/0/position 256 </pre></div> Leave the argument value off to read the position of the servo: <div class="fragment"><pre class="fragment">/servo/0/position </pre></div></dd></dl>
<dl class="user" compact><dt><b>Speed</b></dt><dd>The <b>speed</b> property corresponds to the speed with which the servo responds to changes of position. This value can be both read and written, and the range of values is 0 - 1023. A speed of 1023 means the servo responds immediately, and lower values will result in slower, and smoother, responses. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>To set the speed of the first servo to just under full speed, send a message like <div class="fragment"><pre class="fragment">/servo/0/speed 975 </pre></div> Adjust the argument value to one that suits your application.<br>
 Leave the argument value off to read the position of the servo: <div class="fragment"><pre class="fragment">/servo/0/speed </pre></div></dd></dl>
<dl class="user" compact><dt><b>Active</b></dt><dd>The <b>active</b> property corresponds to the active state of the servo. If the servo is set to be active, no other tasks will be able to write to the same I/O lines. If you're not seeing appropriate responses to your messages to a servo, check the whether it's locked by sending a message like <div class="fragment"><pre class="fragment">/servo/3/active </pre></div> </dd></dl>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Make Controller Kit</title>
<style type="text/css">
<!--
.footer {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 9pt;
	color: #999999;
}
-->
</style>
</head>

<body>
<hr size="1">
<div>
  <p class="footer">The Make Controller Kit is an open source project maintained by <a href="http://www.makingthings.com">MakingThings</a>.<br />
    MakingThings code is released under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache 2.0 license</a>.<br />
    Bug tracker, development wiki and status can be found at <a href="http://dev.makingthings.com">http://dev.makingthings.com</a>.<br />
		This document was last updated on 5 Dec 2007.
</p>
</div>
<!-- Google Analytics Code -->
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-769030-1";
urchinTracker();
</script>
</body>
</html>
